/*************************************************************************
 Copyright (C) Unpublished Unis Software, Inc. All rights reserved.
 Unis Software, Inc., Confidential and Proprietary.

 This software is subject to copyright protection
 under the laws of the Public of China and other countries.

 Unless otherwise explicitly stated, this software is provided
 by Unis "AS IS".
 *************************************************************************/
package com.unis.service.account;

import java.util.LinkedHashMap;
import java.util.List;

import com.unis.model.BaseModel;
import com.unis.model.account.SysMenu;
import com.unis.model.account.SysUser;

/**
 * @author CSJ (email:raulcsj@163.com)
 * @since 2012-12-10
 */
public interface SysMenuService {
    /****************************************
     * Insert a instace of SysMenu
     ****************************************/
    void insert(SysMenu sysmenu) throws Exception;

    /****************************************
     * Insert instaces of SysMenu
     ****************************************/
    void batchInsert(SysMenu sysmenu) throws Exception;

    /****************************************
     * Delete a instace of SysMenu
     ****************************************/
    void delete(SysMenu sysmenu) throws Exception;

    /****************************************
     * Delete instaces of SysMenu
     ****************************************/
    void batchDelete(SysMenu sysmenu) throws Exception;

    /****************************************
     * Update instaces of SysMenu
     ****************************************/
    void batchUpdate(List<LinkedHashMap<?, ?>> sysmenus) throws Exception;

    /****************************************
     * Update a instace of SysMenu
     ****************************************/
    void update(SysMenu sysmenu) throws Exception;

    /****************************************
     * Query instaces of SysMenu
     ****************************************/
    List<BaseModel> queryAsList(SysMenu sysmenu) throws Exception;

    /****************************************
     * Query SysMenus for login user
     ****************************************/
    List<BaseModel> querySysUserMenus(SysUser sysUser) throws Exception;

    /****************************************
     * Query a instaces of SysMenu
     ****************************************/
    BaseModel queryAsObject(SysMenu sysmenu) throws Exception;
}
